# Howdy config file
# Press CTRL + X to save in the nano editor

[core]
# Print that face detection is being attempted
detection_notice = false

# Print that face detection has timed out
timeout_notice = true

# Do not print anything when a face verification succeeds
no_confirmation = false

# When a user without a known face model tries to use this script, don't
# show an error but fail silently
suppress_unknown = false

# Disable Howdy in remote shells
abort_if_ssh = true

# Disable Howdy if lid is closed
abort_if_lid_closed = true

# Disable howdy in the PAM
# The howdy command will still function
disabled = false

# Use CNN instead of HOG
# CNN model is much more accurate than the HOG based model, but takes much more
# power to run, and is meant to be executed on a GPU to attain reasonable speed.
use_cnn = false

# Set a workaround to do face and password authentication at the same time
#  off     user will have to press enter themselves after a Howdy timeout
#  input   will send an enter keypress to stop the password prompt
#  native  will stop the prompt at PAM level (can lead to instability!)
workaround = off

[video]
# The certainty of the detected face belonging to the user of the account
# On a scale from 1 to 10, values above 5 are not recommended
# The lower, the more accurate
certainty = 3.5

# The number of seconds to search before timing out
timeout = 4

# The path of the device to capture frames from
# Video devices are usually found in /dev/v4l/by-path/
device_path = none

# Print a warning if the the video device is not found
warn_no_device = true

# Scale down the video feed to this maximum height
# Speeds up face recognition but can make it less precise
max_height = 320

# Set the camera input profile to this width and height
# The largest profile will be used if set to -1
# Automatically ignored if not a valid profile
frame_width = -1
frame_height = -1

# Because of flashing IR emitters, some frames can be completely unlit
# Skip the frame if the lowest 1/8 of the histogram is above this percentage
# of the total
# The lower this setting is, the more dark frames are ignored
dark_threshold = 60

# The recorder to use. Can be either opencv (default), ffmpeg or pyv4l2.
# Switching from the default opencv to ffmpeg can help with grayscale issues.
recording_plugin = opencv

# Video format used by ffmpeg. Options include vfwcap or v4l2.
# FFMPEG only.
device_format = v4l2

# Force the use of Motion JPEG when decoding frames, fixes issues with YUYV
# raw frame decoding.
# OPENCV only.
force_mjpeg = false

# Specify exposure value explicitly. This disables autoexposure.
# Use qv4l2 to determine an appropriate value.
# OPENCV only.
exposure = -1

# Specify frame rate of the capture device.
# Some IR emitters will not function properly at the default framerate.
# Use qv4l2 to determine an appropriate value.
# OPENCV only.
device_fps = -1

# Rotate captured frames so faces are upright.
#  0  Check landscape orientation only
#  1  Check both landscape and portrait orientation
#  2  Check portrait orientation only
rotate = 0

[snapshots]
# Capture snapshots of failed login attempts and save them to disk with metadata
# Snapshots are saved to /var/log/howdy/snapshots
save_failed = false

# Do the same as the option above but for successful attempts
save_successful = false

[rubberstamps]
# Enable specific extra checks after the user has been recognised
enabled = false

# What type of stamps to run and with what options. The type, timeout and
# failure mode are required. One line per stamp. Rule syntax:
#  stamptype  timeout  (failsafe | faildeadly)   [extra_argument=value]
stamp_rules =
	nod		5s		failsafe     min_distance=12

[debug]
# Show a short but detailed diagnostic report in console
# Enabling this can cause some UI apps to fail, only enable it to debug
end_report = false

# More verbose logging from the rubberstamps system
verbose_stamps = false

# Pass output of the GTK auth window to the terminal
gtk_stdout = false
